40 OPEN "B:INCOME.CUR" AS 1:OPEN "INCOME.FIL" AS 3:FIELD 3, 10 AS A$(1), 10 AS A$(2), 10 AS A$(3), 10 AS A$(4), 10 AS A$(5), 10 AS A$(6)
43 IF LOF(3)/128=0 THEN CLS:PRINT:PRINT TAB(10) "CATEGORY OF INCOME FILE MUST BE CREATED":PRINT:CAT$(2)="TAXABLE":GOTO 4030
50 PRINT " INCOME FILE-----PRESS KEY TO CHOOSE OPTION":PRINT:PRINT TAB(10) "0=OPEN NEW FILE":PRINT:PRINT TAB(10) "A=ADD TO FILE":PRINT:PRINT TAB(10) "R=READ, REVISE OR PRINT FILE":PRINT:PRINT TAB(10) "E=END MONTH--TURN ON PRINTER":PRINT
100 PRINT TAB(10) "M=RETURN TO MENU":PRINT:PRINT TAB(10) "H=READ OR PRINT OLD FILE":PRINT:PRINT TAB(10) "C=REVISE CATEGORY OF INCOME FILE"
174 FOR N=1 TO 6:CAT$(N)=A$(N):NEXT:IF LEFT$(CAT$(2),7)="TAXABLE" THEN JTAX=1
176 IF CAT$(4)=STRING$(10,32) THEN NCAT4=1
177 IF CAT$(5)=STRING$(10,32) THEN NCAT5=1
178 CLOSE 3
180 X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):POKE 23, (PEEK(23) OR 32):IF SKIP% THEN X$="E"
195 IF X$="A" THEN FL$="INCOME.CUR":GOSUB 30210 ELSE IF X$="E" THEN FL$="INCOME.TOT":GOSUB 30210:FL$="CHECKING.ACC":GOSUB 30210:FL$="CHKDSC":GOSUB 30210
200 IF X$="O" THEN 210 ELSE IF X$="A" THEN CLS:GOTO 360 ELSE IF X$="R" THEN 1070 ELSE IF X$="E" THEN EOM%=1:GOTO 1140 ELSE IF X$="M" THEN RUN "BKPG.BAS" ELSE IF X$="H" THEN 1061 ELSE IF X$="C" THEN 4000 ELSE 180
210 CLS:FOR I=1 TO LOF(1)/128:GET 1,I:NEXT:IF LOF(1)/128=0 THEN 260 ELSE 240
240 BEEP:COLOR 31:PRINT "FILE ALREADY OPENED FOR MONTH OR LAST MONTH'S FILE NOT CLOSED OUT":COLOR 7:CLEAR:GOTO 40
260 PRINT "MONTH ";:GOSUB 20050:MON$=INPT$:PRINT "YEAR ";:INLN%=4:NBR=1:GOSUB 20050:YR$=INPT$:IF JTAX=0 THEN 290 ELSE PRINT "SALES TAX RATE AS __% ";
285 INLN%=8:GOSUB 20050:TR=VAL(INPT$):NBR=0
290 CODE%=1:FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:LSET M$=MON$:LSET Y$=YR$:LSET H$=MKD$(TR):PUT 1,CODE%:GOTO 410
360 FOR I=1 TO LOF(1)/128:GET 1,I:NEXT:IF LOF(1)/128=0 THEN 390 ELSE 410
390 BEEP:COLOR 31:PRINT "FILE NOT OPENED FOR MONTH":COLOR 7:CLEAR:GOTO 40
560 PRINT "TYPE OF INCOME ";:LXN%=CSRLIN:IF NCAT4<>1 THEN PRINT:PRINT "ENTER 1 IF "+CAT$(4)
562 IF NCAT5<>1 THEN PRINT:PRINT "ENTER 2 IF "+CAT$(5)
563 IF NCAT4<>1 AND NCAT5<>1 THEN PRINT:PRINT "OR ENTER TYPE "; ELSE LOCATE LXN%,19
565 INLN%=30:GOSUB 20050:TP$=INPT$:IF VAL(TP$)=1 THEN TP$=CAT$(4) ELSE IF VAL(TP$)=2 THEN TP$=CAT$(5)
570 FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$, 5 AS X$:LSET D$=ND$:LSET B$=MKD$(DP):LSET A$=MKD$(AM):LSET F$=FR$:LSET S$=TP$:LSET X$="M":PRINT "CHOOSE":PRINT TAB(10) "E=DATA OK, ENTER ON FILE":PRINT TAB(10) "C=CHANGE DATA"
660 X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="E" THEN 680 ELSE IF X$="C" THEN 510 ELSE 660
805 IF JTAX<>1 AND ABS(TAX)>0.005 THEN BEEP:COLOR 0,7:PRINT "ERROR--TOTAL OF CATEGORIES IS NOT EQUAL TO TOTAL CASH+CHARGE--RECHECK AMOUNTS AND REENTER":COLOR 7,0:PRINT:GOTO 720 ELSE IF JTAX<>1 THEN 900
810 FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:GET 1,1:TR=CVD(H$):IF TAX<0.01 AND TX<0.2 THEN 880
850 IF TAX>0.0108*TR*TX OR TAX<0.0095*TR*TX THEN 860 ELSE 880
860 PRINT "TAX=";:PRINT USING DL$;TAX:PRINT "% OF TAXABLE SALES=";:PRINT USING "##.##";(100*TAX)/TX:BEEP:COLOR 0,7:PRINT "ERROR--TAX IS OUT OF RANGE--RECHECK AMOUNTS AND REENTER DATA":COLOR 7,0:GOTO 720
880 PRINT "TAX=";:PRINT USING "$$####.##";TAX
900 PRINT "CHOOSE":PRINT TAB(10) "E=DATA OK, ENTER ON FILE":PRINT:PRINT TAB(10) "C=CHANGE DATA":PRINT:PRINT TAB(10) "O=DO NOT ENTER DATA, RETURN TO OPTIONS"
930 X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="E" THEN 950 ELSE IF X$="C" THEN PRINT:PRINT TAB(10) "REENTER":PRINT:GOTO 720 ELSE IF X$="O" THEN 10 ELSE 930
950 FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 8 AS E$, 8 AS N$, 8 AS T$, 8 AS R$, 8 AS G$, 8 AS X$:LSET D$=ND$:LSET B$=MKD$(DP):LSET A$=MKD$(AM):LSET E$=MKD$(CHG):LSET N$=MKD$(XT):LSET T$=MKD$(TX):LSET R$=MKD$(RX):LSET G$=MKD$(RA):LSET X$=MKD$(TAX)
1050 PUT 1, CODE%:TAX=0:LSET X$=MKD$(TAX):RETURN
1061 OLD%=1:CLS:COLOR 0,7:PRINT " INSERT DISK CONTAINING THE FILE TO BE READ IN DRIVE B ":COLOR 7,0:PRINT:PRINT:PRINT "ENTER MONTH OF INCOME FILE TO BE READ ";:GOSUB 20050:OMON$=INPT$:FILE$="B:"+"INCOME."+LEFT$(OMON$,3):CLOSE 1:OPEN FILE$ AS 1
1070 CLS:PRINT:PRINT TAB(10) "R=READ ONLY":PRINT:PRINT TAB(10) "P=READ AND PRINT"
1090 PRT$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF PRT$="R" OR PRT$="P" THEN CLS:GOTO 1100 ELSE 1090
1100 COLOR 7,0:CLS:COLOR 0,7:PRINT:PRINT: PRINT " PRESS F8 TO READ RECORDS IN SEQUENCE. PRESS F7 TO STOP AT ANY POINT. PRESS F8 WHEN READY TO CONTINUE READING.":COLOR 7,0: PRINT:PRINT
1110 COLOR 0,7:PRINT " IF REVISING FILE, WRITE DOWN RECORD NUMBERS TO BE CHANGED.": PRINT:PRINT: COLOR 7,0
1120 X$=INKEY$:IF X$<>"@" THEN 1120 ELSE KEY(7) ON
1135 IF NOT EOM% THEN 1149
1140 FIELD 1, 8 AS D$:GET 1, LOF(1)/128:CLS:PRINT:PRINT TAB(10) "DATE OF LAST ENTRY IN FILE IS "+D$:PRINT:PRINT TAB(10) "C=CONTINUE END MONTH PROCEDURE":PRINT:PRINT TAB(10) "O=RETURN TO OPTIONS"
1144 XX$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF XX$="O" THEN 10 ELSE IF XX$<>"C" THEN 1144
1149 GET 1,1:FIELD 1, 10 AS M$, 5 AS Y$:CLS:PRINT " "+M$;:PRINT " "+Y$;:PRINT " INCOME FILE":PRINT
1190 PRINT " CASH CHARGE ";:FOR N=1 TO 3:PRINT CAT$(N);:NEXT:PRINT " REC ON ACCT. ";:IF JTAX THEN PRINT "TAX":PRINT ELSE PRINT:PRINT
1199 IF REV%=1 THEN 1430
1200 IF PRT$="R" THEN 1290
1210 LPRINT CHR$(15);:WIDTH "LPT1:",132:LPRINT MODE$;:FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:LPRINT " "+M$;:LPRINT " "+Y$;:LPRINT " INCOME FILE":LPRINT CHR$(27)CHR$(64)CHR$(15)
1280 LPRINT CHR$(27)CHR$(45)CHR$(1);" DATE DEPOSIT CASH CHARGE ";:LPRINT " ";:FOR I=1 TO 3:LPRINT CAT$(I);:IF I=2 THEN LPRINT " "; ELSE LPRINT " ";
1287 NEXT:LPRINT "REC ON ACCT. ";:IF JTAX THEN LPRINT "TAX REC.NO." ELSE LPRINT " REC.NO."
1289 LPRINT CHR$(27)CHR$(45)CHR$(0)
1290 TDP=0:TAM=0:TCHG=0:TXT=0:TTX=0:TRX=0:TMS=0:TRA=0:TTAX=0:N=0:FOR I=2 TO LOF(1)/128:CODE%=I:GET 1, CODE%:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$,5 AS X$:IF LEFT$(X$,1)="M" THEN N=N+1:J(N)=CODE%:GOTO 1480 ELSE 1345
1345 FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 8 AS E$, 8 AS N$, 8 AS T$, 8 AS R$, 8 AS G$, 8 AS X$:TDP=TDP+CVD(B$):TAM=TAM+CVD(A$):TCHG=TCHG+CVD(E$):TXT=TXT+CVD(N$):TTX=TTX+CVD(T$):TRX=TRX+CVD(R$):TRA=TRA+CVD(G$):TTAX=TTAX+CVD(X$)
1430 PRINT USING DL$;CVD(A$);CVD(E$);CVD(N$);CVD(T$);CVD(R$);CVD(G$);:IF JTAX THEN PRINT USING DL$;CVD(X$) ELSE PRINT
1440 IF REV$="R" THEN 2470 ELSE IF PRT$="R" THEN 1480
1450 LPRINT " "+D$;:LPRINT USING"$$########.##";CVD(B$);CVD(A$);CVD(E$);CVD(N$);CVD(T$);CVD(R$);CVD(G$);:IF JTAX THEN LPRINT USING DL$;CVD(X$);
1470 LPRINT " "CODE%
1480 NEXT:NM=N:PRINT:PRINT " MISCELLANEOUS INCOME":PRINT:PRINT " DATE DEPOSIT AMT.RECD. FROM TYPE OF INCOME ":IF PRT$="R" THEN 1560
1530 LPRINT MODE$:LPRINT " MISCELLANEOUS INCOME":LPRINT:LPRINT " DATE DEPOSIT AMT.RECD. FROM TYPE OF INCOME REC.NO.":LPRINT XMOD$;CHR$(15):IF NM=0 THEN PRINT " NONE":LPRINT " NONE"
1560 FOR N=1 TO NM:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$,5 AS X$:GET 1,J(N):PRINT "REC.NO. ";:PRINT J(N):PRINT D$;:PRINT USING DL$;CVD(B$);:PRINT USING DL$;CVD(A$);:PRINT " "+F$+" "+S$;
1680 IF CAT$(4)=LEFT$(S$,10) THEN TINT=TINT+CVD(A$) ELSE IF CAT$(5)=LEFT$(S$,10) THEN TREN=TREN+CVD(A$) ELSE INC$(N)=S$:AM(N)=CVD(A$)
1690 TM=TM+CVD(A$):TDP=TDP+CVD(B$):TAM=TAM+CVD(A$):IF PRT$="R" THEN 1760
1775 GET 1,LOF(1)/128:PRINT:COLOR 0,7:PRINT " TOTALS TO DATE ";:PRINT D$:COLOR 7,0:PRINT:PRINT " TOTAL DEPOSITS";:PRINT USING DL$;TDP:PRINT " CASH CHARGE ";:FOR N=1 TO 3:PRINT CAT$(N);:NEXT
1818 PRINT " REC ON ACCT. ";:IF JTAX THEN PRINT "TAX":PRINT ELSE PRINT:PRINT
1820 PRINT USING DL$;TAM;TCHG;TXT;TTX;TRX;TRA;:IF JTAX THEN PRINT USING DL$;TTAX ELSE PRINT
1830 PRINT:PRINT " TOTAL SALES";:PRINT USING DL$;TXT+TTX+TRX+TTAX:IF PRT$="R" THEN 1920
1860 LPRINT MODE$:LPRINT " TOTALS TO DATE":LPRINT:LPRINT CHR$(27)CHR$(45)CHR$(1);" DATE DEPOSIT CASH CHARGE ";:LPRINT " ";:FOR N=1 TO 3:LPRINT CAT$(N);:IF N=2 THEN LPRINT " "; ELSE LPRINT " ";
1877 NEXT:LPRINT "REC ON ACCT. ";:IF JTAX THEN LPRINT "TAX" ELSE LPRINT
1879 LPRINT CHR$(27)CHR$(45)CHR$(0):LPRINT TAB(10) D$;:LPRINT USING "$$########.##";TDP;TAM;TCHG;TXT;TTX;TRX;TRA;:IF JTAX THEN LPRINT USING DL$;TTAX ELSE LPRINT
1900 LPRINT:LPRINT " TOTAL SALES ";:LPRINT USING DL$;TXT+TTX+TRX+TTAX
1920 PRINT:PRINT "CASH RECONCILIATION ";:IF TDP-TAM=0 THEN PRINT "DIFFERENCE=NONE" ELSE IF TDP-TAM<0 THEN PRINT "SHORTAGE";USING DL$;TDP-TAM ELSE PRINT "CASH OVER";USING DL$;TDP-TAM
1940 IF PRT$="R" THEN 1965
1950 LPRINT:LPRINT "CASH RECONCILIATION--------";:IF TDP-TAM=0 THEN LPRINT "DIFFERENCE=NONE" ELSE IF TDP-TAM<0 THEN LPRINT "SHORTAGE";USING DL$;TDP-TAM ELSE LPRINT "CASH OVER";USING DL$;TDP-TAM
1964 LPRINT CHR$(12)
1965 IF OLD% THEN KEY(7) OFF:PRINT:PRINT " PRESS F8 TO RETURN TO OPTIONS. " ELSE 1970
1966 Z$=INKEY$:IF Z$<>"@" THEN 1966 ELSE 10
1970 PRINT:PRINT:PRINT TAB(10) "R=REVISE FILE":PRINT TAB(10) "O=RETURN TO OPTIONS":PRINT TAB(10) "M=RETURN TO MENU":KEY(7) OFF
2000 REV$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF REV$="R" THEN FL$="INCOME.CUR":GOSUB 30210:GOTO 2430 ELSE IF REV$="O" THEN 10 ELSE IF REV$="M" THEN RUN "BKPG.BAS" ELSE 2000
2020 OPEN "B:INCOME.TOT" AS 2:LPRINT CHR$(12);:IF LOF(2)/128=0 THEN 2050 ELSE 2110
2050 FOR N=1 TO 15:YTD(N)=0:FIELD 2, 12 AS Q$:LSET Q$=MKD$(YTD(N)):PUT 2, N:NEXT
2110 PRINT:PRINT TAB(10) "INCOME TOTALS":PRINT:GET 1,1:FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:PRINT TAB(40) M$ SPC(10) "YTD":LPRINT MODE$:LPRINT " INCOME TOTALS":LPRINT
2170 T(1)=TDP:T(2)=TAM:T(3)=TCHG:T(4)=TXT:T(5)=TTX:T(6)=TRX:T(7)=TRA:T(8)=TTAX:T(9)=TINT:T(10)=TREN:T(11)=TM-TINT-TREN:T(12)=TXT+TTX+TRX+TTAX:T(13)=T(12)-TTX:T(14)=CVD(H$)*TTX/100:T(15)=TDP-TAM:DLX$="$$##########.##":FOR N=1 TO 15:CODE%=N
2190 FIELD 2, 12 AS Q$:IF N=1 THEN LPRINT "DEPOSITS";ELSE IF N=2 THEN LPRINT "CASH RECEIVED"; ELSE IF N=3 THEN LPRINT "CHARGE SALES";ELSE IF N=4 THEN LPRINT CAT$(1); ELSE IF N=5 THEN LPRINT CAT$(2);
2210 IF N=6 THEN LPRINT CAT$(3); ELSE IF N=7 THEN LPRINT"RECEIVED ON ACCOUNT";ELSE IF N=8 AND JTAX=1 THEN LPRINT"SALES TAX COLLECTED";ELSE IF N=9 AND NCAT4<>1 THEN LPRINT CAT$(4); ELSE IF N=10 AND NCAT5<>1 THEN LPRINT CAT$(5);
2220 IF N=11 THEN LPRINT "OTHER INCOME"; ELSE IF N=12 THEN LPRINT "TOTAL SALES";ELSE IF JTAX=1 AND N=13 THEN LPRINT "TAX EXEMPT SALES";ELSE IF JTAX=1 AND N=14 THEN LPRINT "SALES TAX DUE";ELSE IF N=15 THEN LPRINT "CASH OVER OR UNDER (-)";
2226 IF NCAT4 AND N=9 THEN 2290 ELSE IF NCAT5 AND N=10 THEN 2290
2240 GET 2, N:IF SKIP% THEN YTD(N)=CVD(Q$) ELSE IF N=15 THEN YTD(N)=YTD(1)-YTD(2) ELSE YTD(N)=CVD(Q$)+T(N)
2255 IF N=8 AND JTAX=0 THEN 2290 ELSE IF JTAX=0 THEN IF N=13 OR N=14 THEN 2290
2260 IF NCAT4 AND N=9 THEN 2290 ELSE IF NCAT5 AND N=10 THEN 2290
2270 LPRINT SPC(60-LPOS(X)) USING DLX$;T(N);YTD(N);:LPRINT SPC(10) CODE%:LPRINT
2410 FL$="INCOME."+LEFT$(M$,3):GOSUB 30210:CLOSE 1:NAME "B:INCOME.CUR" AS "B:"+FL$:CLS:PRINT
2420 RUN "BKPG.BAS"
2430 CLS:PRINT:PRINT TAB(10) "R=REVISE REGULAR INCOME FILE":PRINT:PRINT TAB(10) "M=REVISE MISC. INCOME FILE
2445 TYP$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF TYP$="R" THEN 2460 ELSE IF TYP$="M" THEN 2500 ELSE 2445
2460 PRINT "REC.NO. TO BE CHANGED ";:NBR=1:GOSUB 20050:CODE%=VAL(INPT$):NBR=0:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 8 AS E$, 8 AS N$, 8 AS T$, 8 AS R$, 8 AS G$, 8 AS X$
2462 GET 1,CODE%:PRINT D$:PRINT " DEPOSIT ";:PRINT USING DL$;CVD(B$);:PRINT " REC.NO ";:PRINT CODE%:REV%=1:GOTO 1190
2470 GOSUB 720:PRINT "REVISE ANOTHER? Y/N"
2490 X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="Y" THEN 2430 ELSE IF X$="N" THEN 10 ELSE 2490
2500 PRINT "REC.NO. TO BE CHANGED ";:NBR=1:GOSUB 20050:CODE%=VAL(INPT$):NBR=0:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$, 5 AS X$:GET 1,CODE%:PRINT " DATE DEPOSIT AMT.RECD. FROM TYPE OF EXPENSE "
2530 X$=INKEY$:IF X$="Y" THEN 2430 ELSE IF X$="N" THEN 10 ELSE 2530
2540 CLS
2550 PRINT "REC.NO. TO BE CHANGED ";:NBR=1:GOSUB 20050:CODE%=VAL(INPT$):NBR=0:N=CODE%:INPUT "NEW AMOUNT ";:NBR=1:INLN%=12:GOSUB 20050:YTD(N)=VAL(INPT$):NBR=0:FIELD 2, 12 AS Q$:LSET Q$=MKD$(YTD(N)):PUT 2,CODE%:GOSUB 2640
2620 PRINT "REVISE ANOTHER? Y/N"
2630 X$=INKEY$:IF X$="Y" THEN 2540 ELSE IF X$="N" THEN 2320 ELSE 2630
2640 FOR N=1 TO 20:GET 2, N:T(N)=CVD(Q$):NEXT:IF ABS(T(2)+T(3)-T(12)-T(7)-T(9)-T(10)-T(11))>0.005 THEN COLOR 0,7:PRINT " ERROR IN REC.NO. 2,3,12,7,9,10,OR 11":COLOR 7,0:GOTO 2540
2660 IF ABS(T(1)-T(2)-T(15))>0.005 THEN COLOR 0,7:PRINT " ERROR IN REC.NO. 1,2,OR 15":COLOR 7,0:GOTO 2550
2670 IF ABS(CVD(H$)*T(5)/100-T(14))>0.005 THEN COLOR 0,7:PRINT " ERROR IN REC.NO. 5 OR 14":COLOR 7,0:GOTO 2550
2680 IF ABS(T(4)+T(5)+T(6)+T(8)-T(12))>0.005 THEN COLOR 0,7:PRINT " ERROR IN REC.NO. 4,5,6,8,OR 12":COLOR 7,0:GOTO 2550
2690 IF ABS(T(12)-T(13)-T(5))>0.005 THEN COLOR 0,7:PRINT " ERROR IN REC.NO. 5,12,OR 13":COLOR 7,0:GOTO 2550
3000 IF ERR=71 THEN COLOR 0,7:PRINT " FILE DISK NOT IN DRIVE B OR PROGRAM DISK NOT IN DRIVE A OR A DRIVE DOOR IS OPEN. CORRECT PROBLEM AND PRESS F8 WHEN READY. ":GOTO 3050
3010 IF ERR=24 OR ERR=27 THEN COLOR 0,7:PRINT " PRINTER NOT ON OR OUT OF PAPER SET TOP OF PAGE AND TURN ON PRINTER. PRESS F8 WHEN READY ":GOTO 3050
3030 PRINT " AN UNDEFINED ERROR HAS OCCURRED":PRINT:PRINT " PRESS F8 TO RETURN TO OPTIONS."
3040 ER$=INKEY$:IF ER$<>"@" THEN 3040 ELSE 10
3050 ER$=INKEY$:IF ER$<>"@" THEN 3050 ELSE DEF SEG:POKE 106,0:COLOR 7,0:CLS:RESUME
4000 CLS:OPEN "INCOME.FIL" AS 3:FIELD 3, 10 AS A$(1), 10 AS A$(2), 10 AS A$(3), 10 AS A$(4), 10 AS A$(5), 10 AS A$(6)
4030 LOCATE 4,11:PRINT "THERE ARE 3 CATEGORIES OF REGULAR INCOME (USUALLY CASH REGISTER DEPARTMENTS)":LOCATE 6,11:PRINT "THE 2ND CATEGORY IS TAXABLE SALES. NO OTHER CATEGORY MAY INCLUDE TAXABLE SALES."
4035 LOCATE 8,11:PRINT "IF THERE WILL BE NO TAXABLE SALES, THIS CATEGORY CAN BE CHANGED.":LOCATE 10,11:PRINT "DO NOT USE TAX AS A CATEGORY. IT IS A FIXED CATEGORY IF THERE IS TAXABLE SALES"
4040 LOCATE 12,11:PRINT "TO LEAVE CATEGORY AS IS, JUST PRESS ENTER.":PRINT STRING$(79,45):LOCATE 15,27:PRINT "REGULAR INCOME CATEGORIES":FOR N=1 TO 3:LOCATE CSRLIN+1,11:PRINT "CATEGORY "N" "+CAT$(N);:LOCATE CSRLIN,28:INLN%=8:GOSUB 20050:NEXT
4100 ALOC=15:FOR N=1 TO 3:ALOC=ALOC+2:FOR J=28 TO 35:TCAT$(N)=TCAT$(N)+CHR$(SCREEN(ALOC,J)):NEXT:NEXT:CLS:LOCATE 4,11:PRINT " THERE ARE 2 CATAGORIES OF MISCELLANEOUS INCOME THAT WILL BE TOTTALLED."
4210 LOCATE 6,11: PRINT "ALL OTHER MISC. INCOME WILL BE TOTALLED AS MISCELLANEOUS":LOCATE 8,11:PRINT "USE COMMONLY RECEIVED CATEGORIES e.g. RENTS, INTEREST, ETC.":LOCATE 10,11:PRINT "TO LEAVE CATEGORY AS IS, JUST PRESS ENTER":PRINT STRING$(79,45)
4290 ALOC=15:FOR N=1 TO 2:ALOC=ALOC+2:FOR J=28 TO 35:TCAT$(N+3)=TCAT$(N+3)+CHR$(SCREEN(ALOC,J)):NEXT:NEXT:TCAT$(6)="MISCELLANEOUS":FOR N=1 TO 6:LSET A$(N)=TCAT$(N):NEXT:PUT 3,1:CLOSE 3:GOTO 10
20050 INPT$="":INPOS%=POS(0):DEF SEG=64:POKE 23, (PEEK(23) OR 64):POKE 23, (PEEK(23) OR 32):LOCATE,,1,6,7:IF INLN%=0 THEN INLN%=10
20110 IP$=INKEY$:IF IP$="" THEN 20110
20130 IF NBR THEN IF ASC(IP$)>57 THEN BEEP:GOTO 20110
20140 IF NBR THEN IF ASC(IP$)<48 AND ASC(IP$)<>46 THEN IF ASC(IP$)<>8 AND ASC(IP$)<>13 THEN IF ASC(IP$)<> 45 THEN BEEP:GOTO 20110
20150 IF ASC(IP$)=29 THEN BEEP:GOTO 20110
20155 IF ASC(IP$)=27 THEN 10
20160 IP$=CHR$(ASC(IP$)+32*(IP$>="a" AND IP$<="z")):IF LEN(INPT$)=INLN% THEN IF ASC(IP$)<>13 AND ASC(IP$)<>8 THEN 20110